The central processing unit (CPU) of computing devices and systems is under increasing pressure to handle more complex processes as applications and data become more diverse. In response, vendors have been designing and providing specialized processors for specific applications such as for signal processing, graphics processing, industrial control systems, and the like.
Many applications that utilize computer graphics can place an inordinate demand on the CPU for graphics processing. In most graphic applications the processing is shared, where some of the work is performed using the CPU and some of the work is passed to the graphics processing unit (GPU). Classically, machine graphics was implemented on the CPU. Vendors are now designing increasing amounts of memory and processing power on the GPU. At the same time, computing vendors are addressing this problem in part by implementing multi-core CPUs.
In modern user interface scenarios, the number of visual elements in a scene is increasing. It is not uncommon to have applications that produce 10,000 to 50,000 visual elements. Producing fast display and animation for such scenarios is challenging. The GPU computation improves upon CPU-based graphics computation with significantly more parallelism, better memory bandwidth, and specialized hardware for graphics operations. However, the conventional GPU is constrained as a graphics processing component.